#!/sbin/openrc-run
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

description="Gatling high performance web server init script"
extra_started_commands="reload"

depend() {
	need net
}

checkconfig() {
	# Verify UID is valid for running process.
	if ! id ${GATLING_UID} >/dev/null 2>&1; then
		ewarn "User ${GATLING_UID} not found!"
		return 1
	fi

	# Set gatling run opts
	if yesno ${VHOST};then VHOST=-v;else VHOST=-V;fi
	if yesno ${SSL};then SSL=-e;else SSL=-E;fi
	if yesno ${DIR_INDEXING};then DIR_INDEXING=-d;else DIR_INDEXING=-D;fi
	if yesno ${FTP}; then FTP=-f;else FTP=-F;fi
	if yesno ${FTP_AUTH}; then FTP_AUTH=-l;else unset FTP_AUTH;fi
	if yesno ${FTP_UP};then unset FTP_UP;else FTP_UP=-U;fi
        if yesno ${TRANS_PROXY};then TRANS_PROXY=-t;else unset TRANS_PROXY;fi
}

start() {
	checkconfig || return 1

	ebegin "Starting gatling"
	start-stop-daemon --start --quiet --background \
		--make-pidfile --pidfile ${PID} \
		--name gatling --exec /usr/bin/gatling -- \
		-T ${HTTP_TIMEOUT} -i ${IP} -p ${PORT} -P ${PREFETCH} \
		${VHOST} -c ${ROOTDIR} ${DIR_INDEXING} ${TRANS_PROXY} \
		-u ${GATLING_UID} ${FTP} -T ${FTP_TIMEOUT} \
		${FTP_AUTH} ${FTP_UPLOADS}
	eend $?
}

stop() {
	ebegin "Stopping gatling"
	start-stop-daemon --quiet --stop --pidfile ${PID}
	eend $?
}

reload() {
        if ! service_started "${SVCNAME}" ; then
                eerror "${SVCNAME} isn't running"
                return 1
        fi

	checkconfig || return 1

	ebegin "Sending gatling the HUP signal"
	start-stop-daemon --quiet --signal HUP --pidfile ${PID}

	ebegin "Restarting gatling server"
        start-stop-daemon --start --quiet --background \
        	--make-pidfile --pidfile ${PID} \
		--name gatling --exec /usr/bin/gatling -- \
		-T ${HTTP_TIMEOUT} -i ${IP} -p ${PORT} -P ${PREFETCH} \
		${VHOST} -c ${ROOTDIR} ${DIR_INDEXING} ${TRANS_PROXY} \
		-u ${GATLING_UID} ${FTP} -T ${FTP_TIMEOUT} \
		${FTP_AUTH} ${FTP_UPLOADS}
        eend $?
}
